package tech.autumn.exception;

import java.util.Map;

/**
 * 异常处理器（非web环境）<br>
 * 为了防止递归处理，异常处理器里面的所有方法本身不向外抛出任何异常
 * @author koko
 * @date 2025/1/21 14:56
 */
public interface NonWebExceptionHandler {
    /**
     * 处理异常
     *
     * @param e
     *            异常
     * @return 异常标识
     */
    String handle(Throwable e);

    /**
     * 处理异常
     *
     * @param e
     *            异常
     * @param context
     *            发生异常是的上下文，由使用方来定义
     * @return 异常标识
     */
    String handle(Throwable e, Map<String, Object> context);

    /**
     * 处理异常
     *
     * @param name
     *            异常名称
     * @param e
     *            异常
     * @return 异常标识
     */
    String handle(String name, Throwable e);

    /**
     * 处理异常
     *
     * @param name
     *            异常名称
     * @param e
     *            异常
     * @param context
     *            发生异常是的上下文，由使用方来定义
     * @return 异常标识
     */
    String handle(String name, Throwable e, Map<String, Object> context);
}
